1. Field of the Invention
The invention relates to the design and testing of integrated circuits. More specifically, the invention relates to a method and an apparatus performing simulation of post-layout arrays of cells in integrated circuits.
2. Related Art
As the complexity, density, and operating frequencies of integrated circuits have increased, simulation of integrated circuits have become critical for ensuring the functionality of integrated circuits. However, due to the increased complexity, simulation of integrated circuits requires enormous computing resources and time. To reduce the resource and time requirements of simulation various techniques have been developed to increase the efficiency of simulating certain categories of circuits. In particular, arrays of cells, such as memory arrays, display matrices (e.g. LCDs), would require extensive computing resources and time to simulate.
FIG. 1(a) is a simplified circuit diagram of a typical pre-layout array of cells 100. In particular, pre-layout array of cells 100 shown in includes cells C11 to C66, vertical array lines VAL1 to VAL6, and horizontal array lines HAL1 to HAL6. Cells C11 to C66 are arranged in rows and columns, where a cell CXY is in the Yth row (starting at the bottom) and Xth column (starting from the left side) of pre-layout array of cells 100. As used herein pre-layout circuits are circuits derived from the design file without information regarding the planned physical implementation of the circuits. Post-layout circuits include information about the planned physical implementation of the circuit and thus would include information regarding sizing, spacing, and placement of the elements of the circuit as well as parasitic elements (such as parasitic capacitors and parasitic resistors) that may arise due to the physical implementation. Horizontal array lines HALL to HAL6 extend from the left side of pre-layout array of cells 100 to the right side of pre-layout array of cells 100, with each horizontal array line HALY being located below the Yth row of cells. Conversely, vertical array lines VAL1 to VAL6 extend from the bottom of pre-layout array of cells 100 to the top of pre-layout array of cells 100, with each vertical array line VALX being located to the left of the Xth column of cells. Each cell CXY is coupled to vertical array line VALX and horizontal array line HALY. Thus, for example cell C34 is coupled to vertical array line VAL3 and to horizontal array line HAL4. Similarly, cell C52 is coupled to horizontal array line HAL2 and vertical array line VAL5. If pre-layout array of cells 100 were a memory array, the cells would be memory cells, horizontal array lines would be word lines, and vertical array lines would be bit lines. In many array of cells multiple horizontal array lines or vertical array lines may be used for a single column or row of cells. For example, some memory arrays would have two bit lines per column of cells. In addition to vertical or horizontal, array lines are also classified herein as externally driven array lines or internally driven array lines. Signals on externally driven array lines originate from outside the array of cells. For example, word lines in a memory array would be classified as externally driven array lines. Signals on internally driven array lines originate from within the array of cells. For example, bit lines in a memory array would be classified as internally driven array lines. However, in one embodiment of the present invention, array lines that are only capacitively coupled to the cells are classified as externally driven lines while all other array lines are classified as internally driven array lines. For clarity, the arrays of cells described herein only include a limited number of cells (e.g. 36 cells in pre-layout array of cells 100); however, in actual circuit designs arrays of cells may include thousands or millions of cells.
Techniques such as hierarchical array reduction (HAR) found in Nanosim (a circuit simulator available from Synopsys) and spice optimized for arrays (SOFA) found in XA (a circuit simulator available from Synopsys) can be used to accelerate simulations of arrays of cells. Generally, these techniques take advantage of the repetitive and hierarchical nature of arrays of cells. Thus, these techniques can only be used if each cell of the array of cells is exactly identical and if the array lines are “ideal”. Ideal array lines would have negligible series resistance and series capacitances and thus can be treated as a single node. Therefore, in general, techniques such as HAR and SOFA are only effective for simulation of pre-layout arrays.
However, with increased density and higher operating frequencies in integrated circuits, line parasitic capacitances and resistances are no longer negligible. Thus, a simple pre-layout array of cells (such as pre-layout array of cells 100) becomes a much more complicated post-layout array of cells due to the parasitic capacitances and resistances that should be included in the simulation to provide accurate simulation of the post-layout array of cells. FIG. 1(b) is a simplified circuit diagram of a post-layout array of cells 150. Post-layout array of cells 150 again includes cells C11 to C66, horizontal array lines HAL1 to HAL6, and vertical array lines VAL1 to VAL6. Furthermore, post-layout array of cells 150 includes various parasitic resistors and parasitic capacitors. Due to the parasitic resistors and parasitic capacitors, the array lines of post-layout array of cells 150 are distributed RC array lines rather than nodes.
Specifically, each horizontal array line HALY includes horizontal resistors HR1Y to HR6Y in series and horizontal capacitors HC1Y to HC6Y coupled between horizontal array line HALY and ground. Specifically, horizontal resistors HR1Y to HR6Y are coupled in series in horizontal array line HALY. Cell C1Y is coupled to horizontal array line HALY in between horizontal resistors HR1Y and HR2Y; Cell C2Y is coupled to horizontal array line HALY in between horizontal resistors HR2Y and HR3Y; Cell C3Y is coupled to horizontal array line HALY in between horizontal resistors HR3Y and HR4Y; Cell C4Y is coupled to horizontal array line HALY in between horizontal resistors HR4Y and HR5Y; Cell C5Y is coupled to horizontal array line HALY in between horizontal resistors HR5Y and HR6Y; and Cell C6Y is coupled to horizontal array line HALY in after horizontal resistor HR6Y. Horizontal capacitor HC1Y is coupled to horizontal array line HALY between cell C1Y and horizontal resistor HR2Y; horizontal capacitor HC2Y is coupled to horizontal array line HALY between cell C2Y and horizontal resistor HR3Y; horizontal capacitor HC3Y is coupled to horizontal array line HALY between cell C3Y and horizontal resistor HR4Y; horizontal capacitor HC4Y is coupled to horizontal array line HALY between cell C4Y and horizontal resistor HR5Y; horizontal capacitor HC5Y is coupled to horizontal array line HALY between cell C5Y and horizontal resistor HR6Y; and horizontal capacitor HC6Y is coupled to horizontal array line HALY after cell C6Y.
Each vertical array line VALX includes vertical resistors VRX1 to VRX6 in series and vertical capacitors VCX1 to VCX6 coupled between vertical array line VALX and ground. Specifically, vertical resistors VRX1 to VRX6 are coupled in series in vertical array line VALX. Cell CX1 is coupled to vertical array line VALX in between vertical resistors VRX1 and VRX2; Cell CX2 is coupled to vertical array line VALX in between vertical resistors VRX2 and VRX3; Cell CX3 is coupled to vertical array line VALX in between vertical resistors VRX3 and VRX4; Cell CX4 is coupled to vertical array line VALX in between vertical resistors VRX4 and VRX5; Cell CX5 is coupled to vertical array line VALX in between vertical resistors VRX5 and VRX6; and Cell CX6 is coupled to vertical array line VALX after vertical resistor VRX6. Vertical capacitor VCX1 is coupled to vertical array line VALX between cell CX1 and vertical resistor VRX2; vertical capacitor VCX2 is coupled to vertical array line VALX between cell CX2 and vertical resistor VRX3; vertical capacitor VCX3 is coupled to vertical array line VALX between cell CX3 and vertical resistor VRX4; vertical capacitor VCX4 is coupled to vertical array line VALX between cell CX4 and vertical resistor VRX5; vertical capacitor VCX5 is coupled to vertical array line VALX between cell CX5 and vertical resistor VRX6; and vertical capacitor VCX6 is coupled to vertical array line VALX after cell CX6.
The parasitic capacitors and resistors illustrated in FIG. 1(b) are used for illustrative purposes. In an actual post-layout array of cells, many more parasitic resistances and capacitances may be present. For example, an array of cells in an actual circuit design may include millions of parasitic elements. Furthermore, the values of the various parasitic capacitors and parasitic resistors can vary. Thus, even though post-layout array of cells 150 is drawn with a regular consistent arrangement, actual post-layout arrays of cells are irregular and inconsistent due to the differing arrangements and values of the parasitic capacitors and resistors. Furthermore, due to the parasitic resistors and capacitors the array lines can not be treated as single nodes. In addition to the parasitic capacitors from array lines to ground, parasitic coupling (i.e. parasitic capacitors) occur between array lines (due to space constraint these parasitic couplings are not shown in FIG. 3). Thus, the conventional techniques to efficiently simulate arrays of cells, such as Nanosim's HAR and SOFA can not be used on post-layout arrays of cells. Hence there is a need for a method and apparatus for efficiently simulating post-layout arrays of cells.